using System;
using System.Reflection;
using Wizard.Runtime;
using Wizard.Statements;
//using Wizard.Interfaces;
using Wizard.Source;

namespace Wizard.Statements
{
    using Wizard.Runtime;

    public class LocalVariableFieldInfo
    {
//        public readonly Type VariableType;
//        internal ConstructorInfo mConstructorInfo;
//        internal FieldInfo mFieldInfo;

//        public LocalVariableFieldInfo(FieldInfo fi, object[] CustomAttributes)
//        {
//            mFieldInfo = fi;
//            VariableType = mFieldInfo.FieldType; //.GetGenericArguments()[0];

//            if (VariableType.IsValueType) return;
            
//            mConstructorInfo = fi.FieldType.GetConstructor(
//                BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
//                null,
//                new[] {typeof (IBlockInstance), typeof (Statement), typeof (LocalVariableFieldInfo)},
//                null);

//            if (mConstructorInfo == null)
//            {
//                mConstructorInfo = fi.FieldType.GetConstructor(
//                    BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
//                    null,
//                    new Type[] {},
//                    null);

//            }
//        }
    }
}